/**
 * axios挂载到vue上
 */


import axios from 'axios'
import Vue from 'vue'

let config = {
    //todo 配置baseUrl

    //超时时间
    timeout: 60 * 1000
}

const _axios = axios.create(config)

//请求拦截
_axios.interceptors.request.use(config => {
    return config
}, error => {
    return Promise.reject(error)
})
//拦截响应
_axios.interceptors.response.use(response => {

    return response
}), error => {
    console.log('error response=>', error);

    return Promise.reject(error)    //固定写法
}


//插件的方式注册axios到vue实例中
Plugin.install = function (Vue, options) {
    Vue.axios = _axios
    window.axios = _axios   //可以选择是否添加
    //注册到vue的原型对象上
    //Object.defineProperties()给一个对象动态添加属性，并且设置属性的属性

    Object.defineProperties(Vue.prototype, {
        axios: {
            get() {
                return _axios
            }
        },
        $axios: {
            get() {
                return _axios
            }
        }
    })
}

Vue.use(Plugin)

// this.$axios  使用方法

export default Plugin